package com.tfjybj.itoo.exam.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.persistence.Column;
import java.util.Date;

/**
 * @author 王雪芬
 * @date Created in 20:06 2018/12/25
 */

@ApiModel(value = "ExaminOnlineModel: ")
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
public class ExaminOnlineModel {

    //region 模板逆向生产来自ExamineeEntity的属性
    /**
     * id
     */
    @ApiModelProperty(value = "examinee主键")
    @Column(name = "id")
    private String exameeid;
    /**
     * 学生姓名
     */
    @ApiModelProperty(value = "学生姓名")
    private String studentName;

    /**
     * 学生id
     */
    @ApiModelProperty(value = "学生id")
    private String studentId;
    /**
     * 考生登录数量
     */
    @ApiModelProperty(value = "StudentLoginCount", example = "0")
    private Integer StudentLoginCount;
    /**
     * 科目名称
     */
    @ApiModelProperty(value = "科目名称")
    private String courseName;
    /**
     * 学生学号
     */
    @ApiModelProperty(value = "学生学号")
    private String studentCode;
    /**
     * 班级名
     */
    @ApiModelProperty(value = "班级名")
    private String className;

    /**
     * 班级id
     */
    @ApiModelProperty(value = "班级id")
    private String classId;

    /**
     * 专业名
     */
    @ApiModelProperty(value = "专业名")
    private String majorName;

    /**
     * 专业id
     */
    @ApiModelProperty(value = "专业id")
    private String majorId;

    /**
     * 学院名
     */
    @ApiModelProperty(value = "学院名")
    private String collegeName;

    /**
     * 学院id
     */
    @ApiModelProperty(value = "学院id")
    private String collegeId;

    /**
     * 考试id
     */
    @ApiModelProperty(value = "考试id")
    private String examinationId;

    /**
     * 与考试考场关联_id
     */
    @ApiModelProperty(value = "与考试考场关联_id")
    private String examRoomId;

    /**
     * 学生考试状态（0未登录，1已抽，2正在考试，3交卷）
     */
    @ApiModelProperty(value = "学生考试状态（0未登录，1已抽，2正在考试，3交卷）", example = "0")
    private Integer studentExamState;

    /**
     * 学生IP
     */
    @ApiModelProperty(value = "学生IP")
    private String studentIp;

    /**
     * 交卷日期时间
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
    )
    @ApiModelProperty(value = "交卷日期时间")
    private Date submitTime;

    /**
     * 登录时间
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
    )
    @ApiModelProperty(value = "登录时间")
    private Date loginTime;

    /**
     * 缺考信息
     */
    @ApiModelProperty(value = "缺考信息")
    private String absentInfo;

    /**
     * 获取抽题时间
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
    )
    @ApiModelProperty(value = "获取抽题时间")
    private Date getQuestionTime;

    /**
     * 理论交卷日期时间
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
    )
    @ApiModelProperty(value = "理论交卷日期时间")
    private Date shouldSubmitTime;


    /**
     * 头像链接地址
     */
    @ApiModelProperty(value = "头像链接地址")
    private String pictureAddress;


    //region 模板逆向生产来自ExaminationEntity的属性
    /**
     * id
     */
    @ApiModelProperty(value = "examination主键")
    @Column(name = "examinationid")
    private String examinationIds;

    /**
     * 考试名称
     */
    @ApiModelProperty(value = "考试名称", required = true)
    private String examName;

    /**
     * 总分 operator
     */
    @ApiModelProperty(value = "总分")
    private String examscore;

    /**
     * 操作人
     */
    @ApiModelProperty(value = "操作人")
    private String operator;

    /**
     * 考试分类id
     */
    @ApiModelProperty(value = "考试分类id", required = true)
    private String classifyId;

    @ApiModelProperty(value = "分类名字")
    private String classifyName;
    /**
     * 模板id
     */
    @ApiModelProperty(value = "模板id", required = true)
    private String templateId;

    /**
     * 开始时间
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
    )
    @ApiModelProperty(value = "开始时间", required = true)
    private Date startTime;

    /**
     * 结束时间
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
    )
    @ApiModelProperty(value = "结束时间", required = true)
    private Date endTime;

    /**
     * 模板类型（1选题组卷，2抽题组卷，3随机组卷）
     */
    @ApiModelProperty(value = "模板类型（0选题组卷，1抽题组卷，2随机组卷）", required = true, example = "0")
    private Integer templateType;

    /**
     * 模板类型
     */
    @ApiModelProperty(value = "模板类型（选题组卷-0，抽题组卷-1，随机组卷-2）", required = true, example = "0")
    private Integer templateTypeName;

    /**
     * 总题数
     */
    @ApiModelProperty(value = "总题数", example = "0")
    private Integer topicSum;

    /**
     * 状态 {默认（未使用）：0，正在使用 1，已使用 2}
     */
    @ApiModelProperty(value = "状态 {默认（未使用）：0，正在使用 1，已使用 2}", required = true, example = "0")
    private Integer state;

    /**
     * 判分状态 {未判分-2 , 已判分-3}
     */
    @ApiModelProperty(value = "判分状态 {未判分-2 , 已判分-3}", required = true)
    private String scoreState;
    /**
     * 期望分值
     */
    @ApiModelProperty(value = "期望分值", example = "0")
    private Integer expectValue;

    /**
     * 考试时长
     */
    @ApiModelProperty(value = "考试时长", required = true, example = "0")
    private Integer examDuration;

    /**
     * 是否安排考生须知(0安排 1不安排)
     */
    @ApiModelProperty(value = "是否安排考生须知(0安排 1不安排)", example = "0")
    private Integer isStudentNotes;

    /**
     * 考生须知id
     */
    @ApiModelProperty(value = "考生须知id")
    private String studentNotesId;

    /**
     * 须知时长
     */
    @ApiModelProperty(value = "须知时长", example = "0")
    private Integer readTime;

    /**
     * 历史id
     */
    @ApiModelProperty(value = "历史id")
    private String historyId;

    /**
     * 版本（默认为1，以后是2，3，4....）
     */
    @ApiModelProperty(value = "版本（默认为1，以后是2，3，4....）", example = "0")
    private Integer version;

    /**
     * 资源表id
     */
    @ApiModelProperty(value = "资源表id")
    private String datumId;

    /**
     * 是否安排调查问卷(0不安排 1安排)
     */
    @ApiModelProperty(value = "是否安排调查问卷(0不安排 1安排)", example = "0")
    private Integer isEvaluation;

    /**
     * 问卷id
     */
    @ApiModelProperty(value = "问卷id")
    @Column(name = "evaluation_paper_id")
    private String evaluationPaperId;
    //region 模板逆向生产来自TemplateEntity的属性
    /**
     * id
     */
    @ApiModelProperty(value = "template主键")
    @Column(name = "id")
    private String templateids;
    /**
     * 模板名称
     */
    @ApiModelProperty(value = "模板名称", required = true)
    private String name;

    /**
     * 课程id
     */
    @ApiModelProperty(value = "课程id", required = true)
    private String courseId;

    /**
     * 状态（12考试已使用、11考试使用中、10考试未使用20 固定未使用 21 固定使用中 22 随机未使用 23 随机使用中）
     */
    @ApiModelProperty(value = "状态（12考试已使用、11考试使用中、10考试未使用20 固定未使用 21 固定使用中 22 随机未使用 23 随机使用中）", required = true, example = "0")
    private Integer status;

    /**
     * 总分值
     */
    @ApiModelProperty(value = "总分值", required = true)
    private Double templatescore;

    /**
     * 总个数
     */
    @ApiModelProperty(value = "总个数", required = true, example = "0")
    private Integer totalNumber;

    /**
     * 组卷方式(选题,抽题,随机)
     */
    @ApiModelProperty(value = "组卷方式(选题,抽题,随机)", required = true)
    private String organizingType;

    /**
     * 组卷方式名称
     */
    @ApiModelProperty(value = "组卷方式(选题,抽题,随机)", required = true)
    private String organizingName;

    /**
     * 课程描述
     */
    @ApiModelProperty(value = "课程描述")
    private String description;

}
